package tp.pr5.mv.window;

import java.awt.BorderLayout;





import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.JScrollPane;





import tp.pr5.mv.CPU;
import tp.pr5.mv.Controller;
import tp.pr5.mv.Memory;
import tp.pr5.mv.Observable;

@SuppressWarnings("serial")
public class VentanaMemoria extends JPanel {

	// Panel compuesto de la tabla de memoria y de otro panel permite interactuar con la memoria
	
	private TablaMemoria tablaMemoria;
	private AccionesMemoria accionesMemoria;
	
	public VentanaMemoria(Controller controller, Observable<CPU.Observer> observableCPU, Observable<Memory.Observer> observableMem) {
		
		super(new BorderLayout());
		setBorder(BorderFactory.createTitledBorder("Memoria de la máquina") );
		init(controller, observableCPU, observableMem);
	}
	
	public void init(Controller controller, Observable<CPU.Observer> observableCPU, Observable<Memory.Observer> observableMem) {
		
		tablaMemoria = new TablaMemoria(observableMem);
		add( new JScrollPane(tablaMemoria), BorderLayout.CENTER );
		
		accionesMemoria = new AccionesMemoria(controller, observableCPU);
		add( accionesMemoria, BorderLayout.SOUTH);
		
	}
	
	
}
